﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PortalCurriculo.Domain
{
    public partial class SelecionadorEmpresa : Interface.ISelecionadorEmpresa
    {
        public List<SelecionadorEmpresa> SelecionarLista()
        {
            return (from selecionadorEmpresa in Context.Instance.SelecionadorEmpresas
                    where selecionadorEmpresa.Ativo
                    && (selecionadorEmpresa.IdEmpresa.Equals(IdEmpresa) || IdEmpresa.Equals(0))
                    orderby selecionadorEmpresa.Selecionador.Usuario.Pessoa.PessoaFisica.NomeCompleto
                    select selecionadorEmpresa).ToList();
        }

        public void Inativar()
        {
            if (Id.Equals(0)) return;

            SelecionadorEmpresa selecionadorEmpresa = Selecionar();
            selecionadorEmpresa.Inative();
        }

        public SelecionadorEmpresa Selecionar()
        {
            return (from selecionadorEmpresa in Context.Instance.SelecionadorEmpresas
                    where (selecionadorEmpresa.Id.Equals(Id) || Id.Equals(0))
                    select selecionadorEmpresa).FirstOrDefault();
        }

        public List<SelecionadorEmpresa> AutenticarSelecionador(Usuario usuario)
        {
            var selecionadorEmpresas = (from selecionadorEmpresaLinq in Context.Instance.SelecionadorEmpresas
                                               where selecionadorEmpresaLinq.Selecionador.Usuario.Senha.Equals(usuario.Senha)
                                                     && selecionadorEmpresaLinq.Email.Equals(usuario.Pessoa.Email)
                                               select selecionadorEmpresaLinq).ToList();

            if (selecionadorEmpresas.Count > 0 && selecionadorEmpresas.First().Selecionador != null)
                selecionadorEmpresas.First().Selecionador.Usuario.AtualizarUltimoAcesso();

            return selecionadorEmpresas;
        }

        public void Inativar(SelecionadorEmpresa selecionadorEmpresa)
        {
            selecionadorEmpresa.Inative();
        }
    }
}